#ifndef __HASHMAP_H_
#define __HASHMAP_H_

#include<string>
#include<iostream>
using ElementType = std::string;

// const int Size  = 10;

class HashMap
{

public:
    HashMap(int Size);

    ~HashMap();

    //插入一个键值对
    void Insert(const std::string& key,const ElementType& element);

    void show();

    void ShowByGroup();

    ElementType* Get(const std::string& key);

    ElementType& operator[](const std::string& key);

    void Remove(const std::string& key);
private:
    struct Node //节点
    {
        Node(const std::string& key,const ElementType& element)
        {
            this->key = key;
            this->value = element;
            this->next = nullptr;
        }
        std::string key; //键
        ElementType value;//值

        Node* next; // 指向相同下标 的 下一个节点 的指针

    };

    Node* *array;
    const int size;
    //哈希函数:将字符串转成 int 的方法
    int Hash(const std::string& key);
};










#endif